"""
请求去重：
    针对请求的网址进行去重
    已经请求过的内容，不在请求
    基础：
        集合去重：效率低
		hash去重：指纹去重
"""
import random
import hashlib

urls = [f"http://httpbin.org/get?name=qiku&age={random.randint(1, 101)}" for i in range(100)]
print(f"去重之前", len(urls))

# 通过集合去重  （去重效率不高：复杂对象需要逐个比较每一个层级的所有元素）
# urls = set(urls)
# print(f"去重之后", len(urls))

# hash 去重 (同一个对象hash 结果永远一样)
# 存储去重以后得url
diff_urls = []
# 存储爬取过得url的指纹
fingerprint_set = set()

for url in urls:
    fingerprint = hashlib.md5(url.encode()).hexdigest()
    if fingerprint in fingerprint_set:
        pass
    else:
        fingerprint_set.add(fingerprint)
        diff_urls.append(url)

print(f"去重之后", len(diff_urls))
